package cn.fl.customer.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.customer.vo.PrjBillApplyVO;
import fl.customer.facade.invoice.dto.PrjBillApplyDTO;
import org.springframework.beans.BeanUtils;

/**
 * @Description: 票据申请表表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class PrjBillApplyVOTransform {


	/**
	 * DTO 转  VO
	 * @param po PrjBillApplyDTO
	 * @return PrjBillApplyVO
	 */
	public static PrjBillApplyVO toVO(PrjBillApplyDTO dto) {
		PrjBillApplyVO  vo = null;
		if (dto != null) {
			vo = new PrjBillApplyVO();
            BeanUtils.copyProperties(dto, vo);
//			vo.setId(dto.getId());
//			vo.setCstId(dto.getCstId());//客户ID
//			vo.setCstNm(dto.getCstNm());//客户名称
//			vo.setRcverNm(dto.getRcverNm());//收件人
//			vo.setRcvAddr(dto.getRcvAddr());//收件地址
//			vo.setRcverTel(dto.getRcverTel());//收件人联系电话
//			vo.setExpCorp(dto.getExpCorp());//快递公司
//			vo.setTrcNo(dto.getTrcNo());//快递单号
//			vo.setApplyRem(dto.getApplyRem());//APPLY_REM
//			vo.setCstMgrId(dto.getCstMgrId());//客户经理ID
//			vo.setCstMgrNm(dto.getCstMgrNm());//客户经理名称
//			vo.setCstMgrOrgCd(dto.getCstMgrOrgCd());//客户经理组织架构代码
//			vo.setBuOrgCd(dto.getBuOrgCd());//所属事业部
//			vo.setAudStsCd(dto.getAudStsCd());//申请单状态（SYS0019）
//			vo.setApplyTm(dto.getApplyTm());//申请时间
//			vo.setPInstId(dto.getPInstId());//流程实例ID
//			vo.setpInstBusKey(dto.getpInstBusKey());
//			vo.setPNo(dto.getPNo());//流程编号
//			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
//			vo.setAudStsCdNm(dto.getAudStsCdNm());
			vo.setPrjBillFeeRVOList(PrjBillFeeRVOTransform.toVOList(dto.getPrjBillFeeRDTOList()));
//			vo.setBillNo(dto.getBillNo());
//			vo.setBillTypCd(dto.getBillTypCd());
//			vo.setBillStsCd(dto.getBillStsCd());
			vo.setBillFeeRIdList(dto.getBillFeeRIdList());
//			vo.setBuOrgCdNm(dto.getBuOrgCdNm());
//			vo.setInvTitle(dto.getInvTitle());
//			vo.setInvTel(dto.getInvTel());
//			vo.setInvAddr(dto.getInvAddr());
//			vo.setInvBkCd(dto.getInvBkCd());
//			vo.setInvAccNo(dto.getInvAccNo());
//			vo.setInvTaxId(dto.getInvTaxId());
//			vo.setIsPreInv(dto.getIsPreInv());
//			vo.setRlFlowCd(dto.getRlFlowCd());
//			vo.setIsPreInvNm(dto.getIsPreInvNm());
//			vo.setInvBkCdNm(dto.getInvBkCdNm());
//			vo.setCrtTm(dto.getCrtTm());//创建时间
//			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
//			vo.setMdfTm(dto.getMdfTm());//修改时间
//			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
//            // 客户类型名称
//            vo.setCstTypNm(dto.getCstTypNm());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto PrjBillApplyVO
	 * @return PrjBillApplyDTO
	 */
	public static PrjBillApplyDTO toDTO(PrjBillApplyVO vo) {
		PrjBillApplyDTO dto = null;
		if (vo != null) {
			dto = new PrjBillApplyDTO();
			BeanUtils.copyProperties(vo, dto);
//			dto.setId(vo.getId());
//			dto.setCstId(vo.getCstId());//客户ID
//			dto.setCstNm(vo.getCstNm());//客户名称
//			dto.setRcverNm(vo.getRcverNm());//收件人
//			dto.setRcvAddr(vo.getRcvAddr());//收件地址
//			dto.setRcverTel(vo.getRcverTel());//收件人联系电话
//			dto.setExpCorp(vo.getExpCorp());//快递公司
//			dto.setTrcNo(vo.getTrcNo());//快递单号
//			dto.setApplyRem(vo.getApplyRem());//APPLY_REM
//			dto.setCstMgrId(vo.getCstMgrId());//客户经理ID
//			dto.setCstMgrNm(vo.getCstMgrNm());//客户经理名称
//			dto.setCstMgrOrgCd(vo.getCstMgrOrgCd());//客户经理组织架构代码
//			dto.setBuOrgCd(vo.getBuOrgCd());//所属事业部
//			dto.setAudStsCd(vo.getAudStsCd());//申请单状态（SYS0019）
//			dto.setApplyTm(vo.getApplyTm());//申请时间
//			dto.setPInstId(vo.getPInstId());//流程实例ID
//			dto.setpInstBusKey(vo.getpInstBusKey());
//			dto.setPNo(vo.getPNo());//流程编号
//			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setPrjBillFeeRDTOList(PrjBillFeeRVOTransform.toDTOList(vo.getPrjBillFeeRVOList()));
//			dto.setAudStsCdNm(vo.getAudStsCdNm());
//			dto.setBillNo(vo.getBillNo());
//			dto.setBillTypCd(vo.getBillTypCd());
//			dto.setBillStsCd(vo.getBillStsCd());
			dto.setBillFeeRIdList(vo.getBillFeeRIdList());
//			dto.setBuOrgCdNm(vo.getBuOrgCdNm());
//			dto.setInvTitle(vo.getInvTitle());
//			dto.setInvTel(vo.getInvTel());
//			dto.setInvAddr(vo.getInvAddr());
//			dto.setInvBkCd(vo.getInvBkCd());
//			dto.setInvAccNo(vo.getInvAccNo());
//			dto.setInvTaxId(vo.getInvTaxId());
//			dto.setIsPreInv(vo.getIsPreInv());
//			dto.setRlFlowCd(vo.getRlFlowCd());
//			dto.setIsPreInvNm(vo.getIsPreInvNm());
//			dto.setInvBkCdNm(vo.getInvBkCdNm());
			dto.setPrjBillBscInfoDTO(PrjBillBscInfoVOTransform.toDTO(vo.getPrjBillBscInfoVO()));
//			dto.setCrtTm(vo.getCrtTm());//创建时间
//			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
//			dto.setMdfTm(vo.getMdfTm());//修改时间
//			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
//            // 客户类型名称
//            dto.setCstTypNm(vo.getCstTypNm());
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<PrjBillApplyDTO>
	 * @return List<PrjBillApplyVO>
	 */
	public static List<PrjBillApplyVO> toVOList(List<PrjBillApplyDTO> list) {
		List<PrjBillApplyVO>  voList = new ArrayList<PrjBillApplyVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjBillApplyDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<PrjBillApplyVO>
	 * @return List<PrjBillApplyDTO>
	 */
	public static List<PrjBillApplyDTO> toDTOList(List<PrjBillApplyVO> list) {
		List<PrjBillApplyDTO>  dtoList = new ArrayList<PrjBillApplyDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjBillApplyVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
